home *** CD-ROM | disk | FTP | other *** search
/ Collection of Internet / Collection of Internet.iso / protocol / standard / scsi / scsi1_do.2 / text0000.txt < prev   
Encoding:
Text File  |  1993-07-14  |  75.2 KB  |  1,476 lines

  1.  
  2.  
  3. .fo Section 5                            #
  4. 5. Logical Characteristics
  5.  
  6. 5.1 SCSI Bus Phases.  The SCSI architecture includes eight distinct phases:
  7.  
  8.   BUS FREE phase
  9.   ARBITRATION phase
  10.   SELECTION phase
  11.   RESELECTION phase
  12.   COMMAND phase  \
  13.   DATA phase      \   These phases are collectively termed the
  14.   STATUS phase    /   information transfer phases.
  15.   MESSAGE phase  /
  16.  
  17.   The SCSI bus can never be in more than one phase at any given time.  Unless 
  18. otherwise noted in the following descriptions, signals that are not mentioned 
  19. shall not be asserted.
  20.  
  21.   5.1.1 BUS FREE Phase.  The BUS FREE phase is used to indicate that no SCSI 
  22. device is actively using the SCSI bus and that it is available for subsequent 
  23. users.
  24.  
  25.   SCSI devices shall detect the BUS FREE phase after SEL and BSY are both 
  26. false for at least a bus settle delay.
  27.  
  28.   SCSI devices shall release all SCSI bus signals within a bus clear delay 
  29. after BSY and SEL become continuously false for a bus settle delay.  If an 
  30. SCSI device requires more than a bus settle delay to detect the BUS FREE phase 
  31. then it shall release all SCSI bus signals within a bus clear delay minus the 
  32. excess time to detect the BUS FREE phase.  The total time to clear the SCSI 
  33. bus shall not exceed a bus settle delay plus a bus clear delay.
  34.  
  35.   5.1.2 ARBITRATION Phase.  The ARBITRATION phase allows one SCSI device to 
  36. gain control of the SCSI bus so that it can assume the role of an initiator or 
  37. target.
  38.  
  39. NOTE:  Implementation of the ARBITRATION phase is a system option.  Systems 
  40. that do not implement this option can have only one initiator.  The 
  41. ARBITRATION phase is required for systems that use the RESELECTION phase.
  42.  
  43.   The procedure for an SCSI device to obtain control of the SCSI bus is as 
  44. follows:
  45.  
  46.   (1)  The SCSI device shall first wait for the BUS FREE phase to occur.  The 
  47. BUS FREE phase is detected whenever both BSY and SEL are simultaneously and 
  48. continuously false for a minimum of a bus settle delay.  (Implementors Note:  
  49. This bus settle delay is necessary because a transmission line phenomenon 
  50. known as a "wire-OR glitch" may cause BSY to briefly appear false, even though 
  51. it is being driven true.)
  52.  
  53.   (2)  The SCSI device shall wait a minimum of a bus free delay after 
  54. detection of the BUS FREE phase (i.e. after BSY and SEL are both false for a 
  55. bus settle delay) before driving any signal.
  56.  
  57.   (3)  Following the bus free delay in Step (2), the SCSI device may arbitrate 
  58. for the SCSI bus by asserting both BSY and its own SCSI ID, however the SCSI 
  59. device shall not arbitrate (i.e. assert BSY and its SCSI ID) if more than a 
  60.  
  61. bus set delay has passed since the BUS FREE phase was last observed.  
  62. (Implementors Note:  There is no maximum delay before asserting BSY and the 
  63. SCSI ID following the bus free delay in Step (2) as long as the bus remains in 
  64. the BUS FREE phase.  However, SCSI devices that delay longer than a bus settle 
  65. delay plus a bus set delay from the time when BSY and SEL first become false 
  66. may fail to participate in arbitration when competing with faster SCSI 
  67. devices.)
  68.  
  69.   (4)  After waiting at least an arbitration delay (measured from its 
  70. assertion of BSY) the SCSI device shall examine the DATA BUS.  If a higher 
  71. priority SCSI ID bit is true on the DATA BUS (DB(7) is the highest), then the 
  72. SCSI device has lost the arbitration and the SCSI device may release its 
  73. signals and return to Step (1).  If no higher priority SCSI ID bit is true on 
  74. the DATA BUS, then the SCSI device has won the arbitration and it shall assert 
  75. SEL.  Any other SCSI device that is participating in the ARBITRATION phase has 
  76. lost the arbitration and shall release BSY and its SCSI ID bit within a bus 
  77. clear delay after SEL becomes true.  An SCSI device that loses arbitration may 
  78. return to Step (1).
  79.  
  80.   (5)  The SCSI device that wins arbitration shall wait at least a bus clear 
  81. delay plus a bus settle delay after asserting SEL before changing any signals.
  82.  
  83. NOTE:  The SCSI ID bit is a single bit on the DATA BUS that corresponds to the 
  84. SCSI device's unique SCSI address.  All other seven DATA BUS bits shall be 
  85. released by the SCSI device.  Parity is not valid during the ARBITRATION 
  86. phase.  During the ARBITRATION phase, DB(P) may be undriven or driven to the 
  87. true state, but shall not be driven to the false state.
  88.  
  89.   5.1.3 SELECTION Phase.  The SELECTION phase allows an initiator to select a 
  90. target for the purpose of initiating some target function (e.g., READ or WRITE 
  91. command).
  92.  
  93. NOTE:  During the SELECTION phase the I/O signal shall be negated so that this 
  94. phase can be distinguished from the RESELECTION phase.
  95.  
  96.      5.1.3.1 Nonarbitrating Systems.  In systems with the ARBITRATION phase 
  97. not implemented, the initiator shall first detect the BUS FREE phase and then 
  98. wait a minimum of a bus clear delay.  Then, except in certain single initiator 
  99. environments with initiators employing the single initiator option (see 
  100. 5.1.3.4), the initiator shall assert the desired target's SCSI ID and its own 
  101. initiator SCSI ID on the DATA BUS.  After two deskew delays the initiator 
  102. shall assert SEL.
  103.  
  104.      5.1.3.2 Arbitrating Systems.  In systems with ARBITRATION phase 
  105. implemented, the SCSI device that won the arbitration has both BSY and SEL 
  106. asserted and has delayed at least a bus clear delay plus a bus settle delay 
  107. before ending the ARBITRATION phase.  The SCSI device that won the arbitration 
  108. becomes an initiator by releasing I/O.  Except in certain single initiator 
  109. environments with initiators employing the single initiator option (see 
  110. 5.1.3.4), the initiator shall set the DATA BUS to a value which is the OR of 
  111. its SCSI ID bit and the target's SCSI ID bit.  The initiator shall then wait 
  112. at least two deskew delays and release BSY.  The initiator shall then wait at 
  113. least a bus settle delay before looking for a response from the target.
  114.  
  115.      5.1.3.3 All Systems.  In all systems, the target shall determine that it 
  116. is selected when SEL and its SCSI ID bit are true and BSY and I/O are false 
  117.  
  118. for at least a bus settle delay.  The selected target may examine the DATA BUS 
  119. in order to determine the SCSI ID of the selecting initiator unless the 
  120. initiator employed the single initiator option (see 5.1.3.4).  The selected 
  121. target shall then assert BSY within a selection abort time of its most recent 
  122. detection of being selected; this is required for correct operation of the 
  123. timeout procedure.  In systems with parity implemented, the target shall not 
  124. respond to a selection if bad parity is detected.  Also, if more than two SCSI 
  125. ID bits are on the DATA BUS, the target shall not respond to selection.
  126.  
  127.   At least two deskew delays after the initiator detects BSY is true, it shall 
  128. release SEL and may change the DATA BUS.
  129.  
  130.      5.1.3.4 Single Initiator Option.  Initiators that do not implement the 
  131. RESELECTION phase and do not operate in the multiple initiator environment are 
  132. allowed to set only the target's SCSI ID bit during the SELECTION phase.  This 
  133. makes it impossible for the target to determine the initiator's SCSI ID.
  134.  
  135.      5.1.3.5 Selection Timeout Procedure.  Two optional selection timeout 
  136. procedures are specified for clearing the SCSI bus if the initiator waits a 
  137. minimum of a selection timeout delay and there has been no BSY response from 
  138. the target:
  139.  
  140.   (1) Optionally, the initiator shall assert the RST signal (see 5.2.2).
  141.   (2) Optionally, the initiator shall continue asserting SEL and shall release 
  142. the DATA BUS.  If the initiator has not detected BSY to be true after at least 
  143. a selection abort time plus two deskew delays, the initiator shall release SEL 
  144. allowing the SCSI bus to go to the BUS FREE phase.  SCSI devices shall ensure 
  145. that when responding to selection that the selection was still valid within a 
  146. selection abort time of their assertion of BSY.  Failure to comply with this 
  147. requirement could result in an improper selection (two targets connected to 
  148. the same initiator, wrong target connected to an initiator, or a target 
  149. connected to no initiator).
  150.  
  151.   5.1.4 RESELECTION Phase (Optional).  RESELECTION is an optional phase that 
  152. allows a target to reconnect to an initiator for the purpose of continuing 
  153. some operation that was previously started by the initiator but was suspended 
  154. by the target, (i.e., the target disconnected by allowing a BUS FREE phase to 
  155. occur before the operation was complete).
  156.  
  157.      5.1.4.1 RESELECTION.  RESELECTION can only be used in systems that have 
  158. ARBITRATION phase implemented.
  159.  
  160.   Upon completing the ARBITRATION phase, the winning SCSI device has both BSY 
  161. and SEL asserted and has delayed at least a bus clear delay plus a bus settle 
  162. delay.  The winning SCSI device becomes a target by asserting the I/O signal.  
  163. The winning SCSI device shall also set the DATA BUS to a value that is the OR 
  164. of its SCSI ID bit and the initiator's SCSI ID bit.  The target shall wait at 
  165. least two deskew delays and release BSY.  The target shall then wait at least 
  166. a bus settle delay before looking for a response from the initiator.
  167.  
  168.   The initiator shall determine that it is reselected when SEL, I/O, and its 
  169. SCSI ID bit are true and BSY is false for at least a bus settle delay.  The 
  170. reselected initiator may examine the DATA BUS in order to determine the SCSI 
  171. ID of the reselecting target.  The reselected initiator shall then assert BSY 
  172. within a selection abort time of its most recent detection of being 
  173. reselected; this is required for correct operation of the timeout procedure.  
  174.  
  175. In systems with parity implemented, the initiator shall not respond to a 
  176. RESELECTION if bad parity is detected.  Also, the initiator shall not respond 
  177. to a RESELECTION if more than two SCSI ID bits are on the DATA BUS. 
  178.  
  179.   After the target detects BSY, it shall also assert BSY and wait at least two 
  180. deskew delays and then release SEL.  The target may then change the I/O signal 
  181. and the DATA BUS.  After the reselected initiator detects SEL false, it shall 
  182. release BSY.  The target shall continue asserting BSY until the target is 
  183. ready to relinquish the SCSI bus.
  184.  
  185. NOTE:  When the target is asserting BSY, a transmission line phenomenon known 
  186. as a "wire-OR glitch" may cause BSY to appear false for up to a round-trip 
  187. propagation delay following the release of BSY by the initiator.  This is the 
  188. reason why the BUS FREE phase is recognized only after both BSY and SEL are 
  189. continuously false for a minimum of a bus settle delay.  Cables longer than 25 
  190. meters should not be used even if the chosen driver, receiver, and cable 
  191. provide adequate noise margins, because they increase the duration of the 
  192. glitch and could cause SCSI devices to inadvertently detect the BUS FREE 
  193. phase.
  194.  
  195.      5.1.4.2 RESELECTION Timeout Procedure.  Two optional RESELECTION timeout 
  196. procedures are specified for clearing the SCSI bus during a RESELECTION phase 
  197. if the target waits a minimum of a selection timeout period and there has been 
  198. no BSY response from the initiator: 
  199.  
  200.   (1) Optionally, the target shall assert the RST signal (see 5.2.2).
  201.   (2) Optionally, the target shall continue asserting SEL and I/O and shall 
  202. release all DATA BUS signals.  If the target has not detected BSY to be true 
  203. after at least a selection abort time plus two deskew delays, the target shall 
  204. release SEL and I/O allowing the SCSI bus to go to the BUS FREE phase.  SCSI 
  205. devices that respond to RESELECTION shall ensure that the RESELECTION was 
  206. still valid within a selection abort time of their assertion of BSY.  Failure 
  207. to comply with this requirement could result in an improper reselection (two 
  208. initiators connected to the same target or the wrong initiator connected to a 
  209. target).
  210.  
  211.   5.1.5 Information Transfer Phases.
  212.  
  213. NOTE:  The COMMAND, DATA, STATUS, and MESSAGE phases are all grouped together 
  214. as the information transfer phases because they are all used to transfer data 
  215. or control information via the DATA BUS.  The actual contents of the 
  216. information is beyond the scope of this section.
  217.  
  218.   The C/D, I/O, and MSG signals are used to distinguish between the different 
  219. information transfer phases.  (See Table 5-1.)  The target drives these three 
  220. signals and therefore controls all changes from one phase to another.  The 
  221. initiator can request a MESSAGE OUT phase by asserting ATN, while the target 
  222. can cause the BUS FREE phase by releasing MSG, C/D, I/O, and BSY.
  223.  
  224.  
  225.                                   Table 5-1
  226.                          Information Transfer Phases
  227.  
  228. ==============================================================================
  229.    Signal
  230. -----------
  231.  
  232. MSG C/D I/O   Phase Name          Direction Of Transfer         Comment
  233. ------------------------------------------------------------------------------
  234.  0   0   0    DATA OUT            Initiator to target     \     Data
  235.  0   0   1    DATA IN             Initiator from target   /     Phase
  236.  0   1   0    COMMAND             Initiator to target
  237.  0   1   1    STATUS              Initiator from target
  238.  1   0   0    *
  239.  1   0   1    *
  240.  1   1   0    MESSAGE OUT         Initiator to target     \     Message
  241.  1   1   1    MESSAGE IN          Initiator from target   /     Phase
  242. ==============================================================================
  243.  
  244. Key:  0 = False,  1 = True,  * = Reserved for future standardization.
  245.  
  246.   The information transfer phases use one or more REQ/ACK handshakes to 
  247. control the information transfer.  Each REQ/ACK handshake allows the transfer 
  248. of one byte of information.  During the information transfer phases BSY shall 
  249. remain true and SEL shall remain false.  Additionally, during the information 
  250. transfer phases, the target shall continuously envelope the REQ/ACK 
  251. handshake(s) with C/D, I/O, and MSG in such a manner that these control 
  252. signals are valid for a bus settle delay before the assertion of REQ of the 
  253. first handshake and remain valid until the negation of ACK at the end of the 
  254. last handshake.
  255.  
  256.      5.1.5.1 Asynchronous Information Transfer.  The target shall control the 
  257. direction of information transfer by means of the I/O signal.  When I/O is 
  258. true, information shall be transferred from the target to the initiator.  When 
  259. I/O is false, information shall be transferred from the initiator to the 
  260. target.
  261.  
  262.   If I/O is true (transfer to the initiator), the target shall first drive 
  263. DB(7-0,P) to their desired values, delay at least one deskew delay plus a 
  264. cable skew delay, then assert REQ.  DB(7-0,P) shall remain valid until ACK is 
  265. true at the target.  The initiator shall read DB(7-0,P) after REQ is true, 
  266. then signal its acceptance of the data by asserting ACK.  When ACK becomes 
  267. true at the target, the target may change or release DB(7-0,P) and shall 
  268. negate REQ.  After REQ is false the initiator shall then negate ACK.  After 
  269. ACK is false the target may continue the transfer by driving DB(7-0,P) and 
  270. asserting REQ, as described above.
  271.  
  272.   If I/O is false (transfer to the target) the target shall request 
  273. information by asserting REQ.  The initiator shall drive DB(7-0,P) to their 
  274. desired values, delay at least one deskew delay plus a cable skew delay and 
  275. assert ACK.  The initiator shall continue to drive DB(7-0,P) until REQ is 
  276. false.  When ACK becomes true at the target, the target shall read DB(7-0,P), 
  277. then negate REQ.  When REQ becomes false at the initiator, the initiator may 
  278. change or release DB(7-0,P) and shall negate ACK.  The target may continue the 
  279. transfer by asserting REQ, as described above.
  280.  
  281.      5.1.5.2 Synchronous Data Transfer (Optional).  Synchronous data transfer 
  282. is optional, and may be used only in the data phase if previously agreed to by 
  283. the initiator and target through the message system (see SYNCHRONOUS DATA 
  284. TRANSFER REQUEST message, 5.5.5).  The messages determine the use of 
  285. synchronous mode by both SCSI devices and establish a REQ/ACK offset and a 
  286. transfer period.
  287.  
  288.  
  289.   The REQ/ACK offset specifies the maximum number of REQ pulses that can be 
  290. sent by the target in advance of the number of ACK pulses received from the 
  291. initiator, establishing a pacing mechanism.  If the number of REQ pulses 
  292. exceeds the number of ACK pulses by the REQ/ACK offset, the target shall not 
  293. assert REQ until the next ACK pulse is received.  A requirement for successful 
  294. completion of the data phase is that the number of ACK and REQ pulses be 
  295. equal. 
  296.  
  297.   The target shall assert the REQ signal for a minimum of an assertion period. 
  298. The target shall wait at least the greater of a transfer period from the last 
  299. transition of REQ to true or a minimum of a negation period from the last 
  300. transition of REQ to false before asserting the REQ signal.
  301.  
  302.   The initiator shall send one pulse on the ACK signal for each REQ pulse 
  303. received.  The initiator shall assert the ACK signal for a minimum of an 
  304. assertion period.  The initiator shall wait at least the greater of a transfer 
  305. period from the last transition of ACK to true or for a minimum of a negation 
  306. period from the last transition of ACK to false before asserting the ACK 
  307. signal.
  308.  
  309.   If I/O is true (transfer to the initiator), the target shall first drive 
  310. DB(7-0,P) to their desired values, wait at least one deskew delay plus one 
  311. cable skew delay, then assert REQ.  DB(7-0,P) shall be held valid for a 
  312. minimum of one deskew delay plus one cable skew delay plus one hold time after 
  313. the assertion of REQ.  The target shall assert REQ for a minimum of an 
  314. assertion period.  The target may then negate REQ and change or release DB(7-
  315. 0,P).  The initiator shall read the value on DB(7-0,P) within one hold time of 
  316. the transition of REQ to true.  The initiator shall then respond with an ACK 
  317. pulse.
  318.  
  319.   If I/O is false (transfer to the target), the initiator shall transfer one 
  320. byte for each REQ pulse received.  After receiving a REQ pulse, the initiator 
  321. shall first drive DB(7-0,P) to their desired values, delay at least one deskew 
  322. delay plus one cable skew delay, then assert ACK.  The initiator shall hold 
  323. DB(7-0,P) valid for at least one deskew delay plus one cable skew delay plus 
  324. one hold time after the assertion of ACK.  The initiator shall assert ACK for 
  325. a minimum of an assertion period.  The initiator may then negate ACK and may 
  326. change or release DB(7-0,P).  The target shall read the value of DB(7-0,P) 
  327. within one hold time of the transition of ACK to true.
  328.  
  329.   5.1.6 COMMAND Phase.  The COMMAND phase allows the target to request command 
  330. information from the initiator.
  331.  
  332.   The target shall assert the C/D signal and negate the I/O and MSG signals 
  333. during the REQ/ACK handshake(s) of this phase.
  334.  
  335.   5.1.7 Data Phase.  The data phase is a term that encompasses both the DATA 
  336. IN phase and the DATA OUT phase.
  337.  
  338.      5.1.7.1 DATA IN Phase.  The DATA IN phase allows the target to request 
  339. that data be sent to the initiator from the target.
  340.  
  341.   The target shall assert the I/O signal and negate the C/D and MSG signals 
  342. during the REQ/ACK handshake(s) of this phase.
  343.  
  344.      5.1.7.2 DATA OUT Phase.  The DATA OUT phase allows the target to request 
  345.  
  346. that data be sent from the initiator to the target.
  347.  
  348.   The target shall negate the C/D, I/O, and MSG signals during the REQ/ACK 
  349. handshake(s) of this phase.
  350.  
  351.   5.1.8 STATUS Phase.  The STATUS phase allows the target to request that 
  352. status information be sent from the target to the initiator.
  353.  
  354.   The target shall assert C/D and I/O and negate the MSG signal during the 
  355. REQ/ACK handshake of this phase.
  356.  
  357.   5.1.9 Message Phase.  The message phase is a term that references either a 
  358. MESSAGE IN, or a MESSAGE OUT phase.  Multiple messages may be sent during 
  359. either phase.  The first byte transferred in either of these phases shall be 
  360. either a single-byte message or the first byte of a multiple-byte message.  
  361. Multiple-byte messages shall be wholly contained within a single message 
  362. phase.
  363.  
  364.      5.1.9.1 MESSAGE IN Phase.  The MESSAGE IN phase allows the target to 
  365. request that message(s) be sent to the initiator from the target.
  366.  
  367.   The target shall assert C/D, I/O, and MSG during the REQ/ACK handshake(s) of 
  368. this phase.
  369.  
  370.      5.1.9.2 MESSAGE OUT Phase.  The MESSAGE OUT phase allows the target to 
  371. request that message(s) be sent from the initiator to the target.  The target 
  372. may invoke this phase at its convenience in response to the ATTENTION 
  373. condition (see 5.2.1) created by the initiator.
  374.  
  375.   The target shall assert C/D and MSG and negate I/O during the REQ/ACK 
  376. handshake(s) of this phase.  The target shall handshake byte(s) in this phase 
  377. until ATN goes false, unless an error occurs (see MESSAGE REJECT, 5.5.2).
  378.  
  379.   If the target detects one or more parity error(s) on the message byte(s) 
  380. received, it may indicate its desire to retry the message(s) by asserting REQ 
  381. after detecting ATN has gone false and prior to changing to any other phase.  
  382. The initiator, upon detecting this condition, shall resend all of the previous 
  383. message byte(s) sent during this phase.  When resending more than one message 
  384. byte, the initiator shall assert ATN prior to asserting ACK on the first byte 
  385. and shall maintain ATN asserted until the last byte is sent as described in 
  386. 5.2.1.
  387.  
  388.   If the target receives all of the message byte(s) successfully (i.e., no 
  389. parity errors), it shall indicate that it does not wish to retry by changing 
  390. to any information transfer phase other than the MESSAGE OUT phase and 
  391. transfer at least one byte.  The target may also indicate that it has 
  392. successfully received the message byte(s) by changing to the BUS FREE phase 
  393. (e.g., ABORT or BUS DEVICE RESET messages).
  394.  
  395.   5.1.10 Signal Restrictions Between Phases.  When the SCSI bus is between two 
  396. information transfer phases, the following restrictions shall apply to the 
  397. SCSI bus signals:
  398.  
  399.   (1) The BSY, SEL, REQ, and ACK signals shall not change.
  400.   (2) The C/D, I/O, MSG, and DATA BUS signals may change.  When switching the 
  401. DATA BUS direction from out (initiator driving) to in (target driving), the 
  402.  
  403. target shall delay driving the DATA BUS by at least a data release delay plus 
  404. a bus settle delay after asserting the I/O signal and the initiator shall 
  405. release the DATA BUS no later than a data release delay after the transition 
  406. of the I/O signal to true.  When switching the DATA BUS direction from in 
  407. (target driving) to out (initiator driving), the target shall release the DATA 
  408. BUS no later than a deskew delay after negating the I/O signal.
  409.   (3) The ATN and RST signals may change as defined under the descriptions for 
  410. the ATTENTION condition (5.2.1) and RESET condition (5.2.2).
  411.  
  412. 5.2 SCSI Bus Conditions.  The SCSI bus has two asynchronous conditions; the 
  413. ATTENTION condition and the RESET condition.  These conditions cause the SCSI 
  414. device to perform certain actions and can alter the phase sequence.
  415.  
  416.   5.2.1 ATTENTION Condition.  The ATTENTION condition allows an initiator to 
  417. inform a target that the initiator has a message ready.  The target may get 
  418. this message at its convenience by performing a MESSAGE OUT phase.
  419.  
  420.   The initiator creates the ATTENTION condition by asserting ATN at any time 
  421. except during the ARBITRATION or BUS FREE phases.
  422.  
  423.   The target may respond with the MESSAGE OUT phase.
  424.  
  425.   The initiator shall keep ATN asserted if more than one byte is to be 
  426. transferred.  The initiator may negate the ATN signal at any time except it
  427. shall not negate the ATN signal while the ACK signal is asserted during a 
  428. MESSAGE OUT phase.  Normally, the initiator negates ATN while REQ is true and 
  429. ACK is false during the last REQ/ACK handshake of the MESSAGE OUT phase.
  430.  
  431.   5.2.2 RESET Condition.  The RESET condition is used to immediately clear all 
  432. SCSI devices from the bus.  This condition shall take precedence over all 
  433. other phases and conditions.  Any SCSI device may create the RESET condition 
  434. by asserting RST for a minimum of a reset hold time.  During the RESET 
  435. condition, the state of all SCSI bus signals other than RST is not defined.
  436.  
  437.   All SCSI devices shall release all SCSI bus signals (except RST) within a 
  438. bus clear delay of the transition of RST to true.  The BUS FREE phase always 
  439. follows the RESET condition.
  440.  
  441.   The effect of the RESET condition on uncompleted commands, SCSI device 
  442. reservations, and SCSI device operating modes is determined by whether the 
  443. SCSI device has implemented the "hard" RESET option or the "soft" RESET option 
  444. (one of which shall be implemented) as defined in 5.2.2.1 and 5.2.2.2.
  445.  
  446.      5.2.2.1 "Hard" RESET Option.  SCSI devices that implement the "hard" 
  447. RESET option, upon detection of the RESET condition, shall:
  448.  
  449.   (1) Clear all uncompleted commands
  450.   (2) Release all SCSI device reservations
  451.   (3) Return any SCSI device operating modes (MODE SELECT, PREVENT/ALLOW 
  452. MEDIUM REMOVAL commands, etc) to their default conditions.
  453.  
  454.      5.2.2.2 "Soft" RESET Option.  SCSI devices that implement the "soft" 
  455. RESET option, upon detection of the RESET condition, shall:
  456.  
  457.   (1) Attempt to complete any uncompleted commands that were fully identified
  458.   (2) Preserve all SCSI device reservations
  459.  
  460.   (3) Preserve any SCSI device operating modes (MODE SELECT, PREVENT/ALLOW 
  461. MEDIUM REMOVAL commands, etc)
  462.  
  463.   The "soft" RESET option allows a single initiator to reset the SCSI bus 
  464. without disturbing the operation of other initiators in a multiple initiator 
  465. system.  To ensure proper operation the following conditions shall be met:
  466.  
  467.   (1) An initiator shall not consider a command to be fully identified until 
  468. the IDENTIFY message is sent to the target and the target responds by changing 
  469. to any other information transfer phase and requests that at least one byte be 
  470. transferred.
  471.  
  472.   (2) A target shall consider a command to be fully identified when it 
  473. successfully receives the IDENTIFY message.
  474.  
  475.   (3) If an initiator selects a logical unit for which there already is an 
  476. active command for the same initiator, the target shall clear the original 
  477. command and perform the new command.
  478.  
  479.   (4) If a target reselects an initiator to continue a command for which the 
  480. initiator has no record, the initiator shall abort that command by sending the 
  481. ABORT message.
  482.  
  483.   (5) An initiator shall consider a command to be completed when it negates 
  484. ACK for a successfully received COMMAND COMPLETE message.
  485.  
  486.   (6) A target shall consider a command to be completed when it detects the 
  487. false transition of ACK for the COMMAND COMPLETE message with the ATN signal 
  488. false.
  489.  
  490.   (7) An initiator shall not negate ACK for the SAVE DATA POINTER message 
  491. until it has actually saved the data pointer for the operation.
  492.  
  493.   (8) A target shall consider the data pointer to be saved when it detects the 
  494. false transition of ACK for the SAVE DATA POINTER message with the ATN signal 
  495. false.
  496.  
  497.   (9) If the RESET condition occurs between the time that the target asserts 
  498. REQ for the SAVE DATA POINTER message and it detects the false transition of 
  499. ACK, the target shall terminate the command with a CHECK CONDITION status.  If 
  500. extended sense is implemented, the target shall set the sense key to ABORTED 
  501. COMMAND.  This is necessary because the target cannot determine whether the 
  502. data pointer has actually been saved.
  503.  
  504. NOTE:  If the ATN signal is true in conditions (6) or (8), the target would 
  505. normally switch to MESSAGE OUT phase and attempt to transfer a message byte.  
  506. If the RESET condition  occurs before it is able to successfully receive the 
  507. message byte, the target shall assume that the initiator may not have 
  508. successfully received the COMMAND COMPLETE message or the SAVE DATA POINTER 
  509. message.  In the case of COMMAND COMPLETE message, the target shall reselect 
  510. the initiator and attempt to send the COMMAND COMPLETE message again.  In the 
  511. case of the SAVE DATA POINTER message, the target shall reselect the initiator 
  512. and terminate the command as described in condition (9).
  513.  
  514. 5.3 SCSI Bus Phase Sequences.  The order in which phases are used on the SCSI 
  515. bus follows a prescribed sequence.
  516.  
  517.  
  518.   In all systems, the RESET condition can abort any phase and is always 
  519. followed by the BUS FREE phase.  Also, any other phase can be followed by the 
  520. BUS FREE phase.
  521.  
  522.   5.3.1 Nonarbitrating Systems.  In systems where the ARBITRATION phase is not 
  523. implemented, the allowable sequences shall be as shown in Figure 5-1.  The 
  524. normal progression is from the BUS FREE phase to SELECTION, and from SELECTION 
  525. to one or more of the information transfer phases (COMMAND, DATA, STATUS, or 
  526. MESSAGE).
  527.  
  528.   5.3.2 Arbitrating Systems.  In systems where the ARBITRATION phase is 
  529. implemented, the allowable sequences shall be as shown in Figure 5-2.  The 
  530. normal progression is from the BUS FREE phase to ARBITRATION, from ARBITRATION 
  531. to SELECTION or RESELECTION, and from SELECTION or RESELECTION to one or more 
  532. of the information transfer phases (COMMAND, DATA, STATUS, or MESSAGE).
  533.  
  534.   5.3.3 All Systems.  There are no restrictions on the sequences between 
  535. information transfer phases.  A phase type may even be followed by the same 
  536. phase type (e.g., a data phase may be followed by another data phase).
  537. .pa
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.                Figure 5-1. Phase Sequences without Arbitration
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.                  Figure 5-2. Phase Sequences with Arbitration
  594. .pa
  595.  
  596. 5.4 SCSI Pointers.  Consider the system shown in Figure 5-3 in which an 
  597. initiator and target communicate on the SCSI bus in order to execute a 
  598. command. 
  599.  
  600.  
  601.  
  602.      -------------------------                 -------------------------
  603.      | Function | | Initiator|-----------------| Target   | | Function |
  604.      | Origin   | | Path     |    SCSI BUS     | Path     | | Execution|
  605.      |          | | Control  |-----------------| Control  | |          |
  606.      -------------------------                 -------------------------
  607.  
  608.              Initiator                                   Target
  609.  
  610.                       Figure 5-3. Simplified SCSI System
  611.  
  612.  
  613.   The SCSI architecture provides for two sets of three pointers within each 
  614. initiator.  The pointers reside in the initiator path control.  The first set 
  615. of pointers are known as the current (or active) pointers.  These pointers are 
  616. used to represent the state of the interface and point to the next command, 
  617. data, or status byte to be transferred between the initiator's memory and the 
  618. target.  There is only one set of current pointers in each initiator.  The 
  619. current pointers are used by the target currently connected to the initiator.
  620.  
  621.   The second set of pointers are known as the saved pointers.  There is one 
  622. set of saved pointers for each command that is currently active (whether or 
  623. not it is currently connected).  The saved command pointer always points to 
  624. the start of the command descriptor block (see 6.2) for the current command.  
  625. The saved status pointer always points to the start of the status area for the 
  626. current command.  At the beginning of each command, the saved data pointer 
  627. points to the start of the data area.  It remains at this value until the 
  628. target sends a SAVE DATA POINTER message (see 5.5.2) to the initiator.  In 
  629. response to this message, the initiator stores the value of the current data 
  630. pointer into the saved data pointer.  The target may restore the current 
  631. pointers to their saved values by sending a RESTORE POINTERS message (see 
  632. 5.5.2) to the initiator.  The initiator moves the saved value of each pointer 
  633. into the corresponding current pointer.  Whenever an SCSI device disconnects 
  634. >From the bus, only the saved pointer values are retained.  The current pointer 
  635. values are restored from the saved values upon the next reconnection.
  636.  
  637. 5.5 Message System Specification.  The message system allows communication 
  638. between an initiator and target for the purpose of physical path management.
  639.  
  640. 5.5.1 Message Protocol.  All SCSI devices shall implement the COMMAND COMPLETE 
  641. message.  A functional SCSI device can be constructed without using any of the 
  642. other messages if the logical unit number is specified in the command 
  643. descriptor block.  The remainder of this section deals with the additional 
  644. requirements on SCSI devices that support messages other than COMMAND 
  645. COMPLETE.
  646.  
  647.   SCSI devices indicate their ability to accommodate more than the COMMAND 
  648. COMPLETE message by asserting or responding to the ATN signal.  The initiator 
  649. indicates this in the SELECTION phase by asserting ATN prior to the SCSI bus 
  650. condition of SEL true, and BSY false.  The target indicates its ability to 
  651. accommodate more messages by responding to the ATTENTION condition with the 
  652.  
  653. MESSAGE OUT phase after going through the SELECTION phase. 
  654.  
  655. For SCSI devices that support messages other than COMMAND COMPLETE, the first 
  656. message sent by the initiator after the SELECTION phase shall be the IDENTIFY 
  657. message.  This allows the establishment of the physical path for a particular 
  658. logical unit specified by the initiator.  After the RESELECTION phase, the 
  659. target's first message shall be IDENTIFY.  This allows the physical path to be 
  660. reestablished for the target's specified logical unit number.  Under some 
  661. exceptional conditions, an initiator may send the ABORT message or the BUS 
  662. DEVICE RESET message instead of the IDENTIFY message, as the first message.  
  663. Only one logical unit number shall be identified for any one selection 
  664. sequence; a second IDENTIFY message with a new logical unit number shall not 
  665. be issued before the SCSI bus has been released (BUS FREE phase).
  666.  
  667.   Whenever a physical path is established in an initiator that can accommodate 
  668. disconnection and reconnection, the initiator shall ensure that the active 
  669. pointers of the physical path are equal to the saved pointers for that 
  670. particular logical unit number.  (An implied restore pointers operation occurs 
  671. as a result of connect or reconnect.)
  672.  
  673.   SCSI devices that implement any message other than the COMMAND COMPLETE 
  674. message shall also implement the MESSAGE REJECT message.
  675.  
  676.  
  677.                                   Table 5-2
  678.                                 Message Codes
  679.  
  680. ==============================================================================
  681. Code      Type   Description                             Direction
  682. ------------------------------------------------------------------------------
  683. 00H        M     COMMAND COMPLETE                        In
  684. 01H        O     EXTENDED MESSAGE                        In   Out
  685. 02H        O     SAVE DATA POINTER                       In
  686. 03H        O     RESTORE POINTERS                        In
  687. 04H        O     DISCONNECT                              In
  688. 05H        O     INITIATOR DETECTED ERROR                     Out
  689. 06H        O     ABORT                                        Out
  690. 07H        O     MESSAGE REJECT                          In   Out
  691. 08H        O     NO OPERATION                                 Out
  692. 09H        O     MESSAGE PARITY ERROR                         Out
  693. 0AH        O     LINKED COMMAND COMPLETE                 In
  694. 0BH        O     LINKED COMMAND COMPLETE (WITH FLAG)     In
  695. 0CH        O     BUS DEVICE RESET                             Out
  696. 0DH _ 7FH  R     Reserved Codes
  697. 80H _ FFH  O     IDENTIFY                                In   Out
  698. ==============================================================================
  699.  
  700. Key:  In = Target to initiator,  Out = Initiator to target.
  701.  
  702.  
  703.   5.5.2 Messages.  The single byte messages (Table 5-2) are listed along with 
  704. their code values and their definitions.
  705.  
  706. COMMAND COMPLETE 00H (Mandatory).  This message is sent from a target to an 
  707. initiator to indicate that the execution of a command (or series of linked 
  708. commands) has terminated and that valid status has been sent to the initiator.  
  709.  
  710. After successfully sending this message, the target shall go to the BUS FREE 
  711. phase by releasing BSY.
  712.  
  713. NOTE:  The command may have been executed successfully or unsuccessfully as 
  714. indicated in the status.
  715.  
  716. EXTENDED MESSAGE 01H (Optional).  This message is sent from either the 
  717. initiator or the target as the first byte of a multiple-byte message.  (See 
  718. 5.5.3 for descriptions of extended messages.)
  719.  
  720. SAVE DATA POINTER 02H (Optional).  This message is sent from a target to 
  721. direct the initiator to save a copy of the present active data pointer for the 
  722. currently attached logical unit.  (See 5.4 for a definition of pointers.)
  723.  
  724. RESTORE POINTERS 03H (Optional).  This message is sent from a target to direct 
  725. the initiator to restore the most recently saved pointers (for the currently 
  726. attached logical unit) to the active state.  Pointers to the command, data, 
  727. and status locations for the logical unit shall be restored to the active 
  728. pointers.  Command and status pointers shall be restored to the beginning of 
  729. the present command and status areas.  The data pointer shall be restored to 
  730. the value at the beginning of the data area in the absence of a SAVE DATA 
  731. POINTER message or to the value at the point at which the last SAVE DATA 
  732. POINTER message occurred for that logical unit.
  733.  
  734. DISCONNECT 04H (Optional).  This message is sent from a target to inform an 
  735. initiator that the present physical path is going to be broken (the target 
  736. plans to  disconnect by releasing BSY), but that a later reconnect will be 
  737. required in order to complete the current operation.  If the initiator detects 
  738. the BUS FREE phase (other than as a result of a RESET condition) without first 
  739. receiving a DISCONNECT or COMMAND COMPLETE message, the initiator shall 
  740. consider this as a catastrophic error condition.  If the target intentionally 
  741. creates this condition, the target shall clear the current command.  This 
  742. message shall not cause the initiator to save the data pointer.  Note:  If 
  743. DISCONNECT messages are used break a long data transfer into two or more 
  744. shorter transfers, then a SAVE DATA POINTER should be issued before each 
  745. DISCONNECT message.
  746.  
  747. INITIATOR DETECTED ERROR 05H (Optional).  This message is sent from an 
  748. initiator to inform a target that an error (e.g., parity error) has occurred 
  749. that does not preclude the target from retrying the operation.  Although 
  750. present pointer integrity is not assured, a RESTORE POINTERS message or a 
  751. disconnect followed by a reconnect, shall cause the pointers to be restored to 
  752. their defined prior state.
  753.  
  754. ABORT 06H (Optional).  This message is sent from the initiator to the target 
  755. to clear the present operation.  If a logical unit has been identified, all 
  756. pending data and status for the issuing initiator from the effected logical 
  757. unit shall be cleared, and the target shall go to the BUS FREE phase.  Pending 
  758. data and status for other initiators shall not be cleared.  If a logical unit 
  759. has not been identified, the target shall go to the BUS FREE phase.  No status 
  760. or ending message shall be sent for the operation.  It is not an error to 
  761. issue this message to an logical unit that is not currently performing an 
  762. operation for the initiator.
  763.  
  764. MESSAGE REJECT 07H (Optional).  This message is sent from either the initiator 
  765. or target to indicate that the last message it received was inappropriate or 
  766.  
  767. has not been implemented.
  768.  
  769.   In order to indicate its intentions of sending this message, the initiator 
  770. shall assert the ATN signal prior to its release of ACK for the REQ/ACK 
  771. handshake of the message that is to be rejected.  When a target sends this 
  772. message, it shall change to MESSAGE IN phase and send this message prior to 
  773. requesting additional message bytes from the initiator.  This provides an 
  774. interlock so that the initiator can determine which message is rejected.
  775.  
  776.   This message shall be implemented if any other optional messages are 
  777. implemented. 
  778.  
  779. NO OPERATION 08H (Optional).  This message is sent from an initiator in 
  780. response to a target's request for a message when the initiator does not 
  781. currently have any other valid message to send.
  782.  
  783. MESSAGE PARITY ERROR 09H (Optional).  This message is sent from the initiator 
  784. to the target to indicate that one or more bytes in the last message it 
  785. received had a parity error.
  786.  
  787.   In order to indicate its intentions of sending this message, the initiator 
  788. shall assert the ATN signal prior to its release of ACK for the REQ/ACK 
  789. handshake of the message that has the parity error.  This provides an 
  790. interlock so that the target can determine which message has the parity error.
  791.  
  792. LINKED COMMAND COMPLETE 0AH (Optional).  This message is sent from a target to 
  793. an initiator to indicate that the execution of a linked command has completed 
  794. and that status has been sent.  The initiator shall then set the pointers to 
  795. the initial state for the next linked command.
  796.  
  797. LINKED COMMAND COMPLETE (WITH FLAG) 0BH (Optional).  This message is sent from 
  798. a target to an initiator to indicate that the execution of a linked command 
  799. (with the flag bit set to one) has completed and that status has been sent.  
  800. The initiator shall then set the pointers to the initial state of the next 
  801. linked command.  Typically this message would be used to cause an interrupt in 
  802. the initiator between two linked commands.
  803.  
  804. BUS DEVICE RESET 0CH (Optional).  This message is sent from an initiator to 
  805. direct a target to clear all current commands on that SCSI device.  This 
  806. message forces the SCSI device to an initial state with no operations pending 
  807. for any initiator.  Upon recognizing this message, the target shall go to the 
  808. BUS FREE phase.
  809.  
  810. Reserved 0DH to 7FH.  These message codes are reserved for future 
  811. standardization.
  812.  
  813. IDENTIFY 80H to FFH (Optional).  These messages are sent by either the 
  814. initiator or the target to establish the physical path connection between an 
  815. initiator and target for a particular logical unit.
  816.  
  817.   Bit 7.  This bit is always set to one to distinguish these messages from the 
  818. other messages.
  819.  
  820.   Bit 6.  This bit is only set to one by the initiator.  When set to one, it 
  821. indicates that the initiator has the ability to accommodate disconnection and 
  822. reconnection.
  823.  
  824.  
  825.   Bits 5-3.  Reserved.
  826.  
  827.   Bits 2-0.  These bits specify a logical unit number in a target.
  828.  
  829.   Only one logical unit number shall be identified for any one selection 
  830. sequence; a second IDENTIFY message with a new logical unit number shall not 
  831. be issued before the bus has been released (BUS FREE phase).
  832.  
  833.   When sent from a target to an initiator during reconnection, an implied 
  834. RESTORE POINTERS message shall be performed by the initiator prior to 
  835. completion of this message.
  836.  
  837.   5.5.3 Extended Messages (Optional).  A value of one in the first byte of a 
  838. message indicates the beginning of a multiple-byte extended message.  The 
  839. minimum number of bytes sent for an extended message is three.  The extended 
  840. message format and the extended message codes are shown in Tables 5-3 and 5-4, 
  841. respectively.
  842.  
  843.                                   Table 5-3
  844.                            Extended Message Format
  845.  
  846. ==============================================================================
  847.  Byte     |  Value   |   Description                                         |
  848. ==============================================================================
  849.   0       |   01H    |   Extended message                                    |
  850. ----------|----------|-------------------------------------------------------|
  851.   1       |    nH    |   Extended message length                             |
  852. ----------|----------|-------------------------------------------------------|
  853.   2       |    yH    |   Extended message code                               |
  854. ----------|----------|-------------------------------------------------------|
  855. 3 _ nH+1  |    xH    |   Extended message arguments                          |
  856. ==============================================================================
  857.  
  858.   The extended message length specifies the length in bytes of the extended 
  859. message code plus the extended message arguments to follow.  Therefore, the 
  860. total length of the message is equal to the extended message length plus two.  
  861. A value of zero for the extended message length indicates 256 bytes follow.
  862.  
  863.   The extended message codes are listed in Table 5-4.  The extended message 
  864. arguments are specified for the defined extended messages in Sections 5.5.4 
  865. through 5.5.6.
  866.  
  867.                                   Table 5-4
  868.                             Extended Message Codes
  869.  
  870. ==============================================================================
  871. Code (yH)      Description
  872. ------------------------------------------------------------------------------
  873. 00H            MODIFY DATA POINTER (Optional) 
  874. 01H            SYNCHRONOUS DATA TRANSFER REQUEST (Optional) 
  875. 02H            EXTENDED IDENTIFY (Optional) 
  876. 03H _ 7FH      Reserved
  877. 80H _ FFH      Vendor Unique
  878. ==============================================================================
  879. .pa
  880.  
  881.   5.5.4 MODIFY DATA POINTER Message (Optional)
  882.  
  883.                                   Table 5-5
  884.                              MODIFY DATA POINTER
  885.  
  886. ==============================================================================
  887. Byte |  Value  |    Description                                              |
  888. ==============================================================================
  889.  0   |   01H   |    Extended message                                         |
  890. -----|---------|-------------------------------------------------------------|
  891.  1   |   05H   |    Extended message length                                  |
  892. -----|---------|-------------------------------------------------------------|
  893.  2   |   00H   |    MODIFY DATA POINTER code                                 |
  894. -----|---------|-------------------------------------------------------------|
  895.  3   |    xH   |    Argument (MSB)                                           |
  896. -----|---------|-------------------------------------------------------------|
  897.  4   |    xH   |    Argument                                                 |
  898. -----|---------|-------------------------------------------------------------|
  899.  5   |    xH   |    Argument                                                 |
  900. -----|---------|-------------------------------------------------------------|
  901.  6   |    xH   |    Argument (LSB)                                           |
  902. ==============================================================================
  903.  
  904.   The MODIFY DATA POINTER message (Table 5-5) is sent from the target to the 
  905. initiator and requests that the signed argument be added (two's complement) to 
  906. the value of the current data pointer.
  907.  
  908.   5.5.5 SYNCHRONOUS DATA TRANSFER REQUEST Message (Optional)
  909.  
  910.                                   Table 5-6
  911.                       SYNCHRONOUS DATA TRANSFER REQUEST
  912.  
  913. ==============================================================================
  914. Byte |  Value  |    Description                                              |
  915. ==============================================================================
  916.  0   |   01H   |    Extended message                                         |
  917. -----|---------|-------------------------------------------------------------|
  918.  1   |   03H   |    Extended message length                                  |
  919. -----|---------|-------------------------------------------------------------|
  920.  2   |   01H   |    SYNCHRONOUS DATA TRANSFER REQUEST code                   |
  921. -----|---------|-------------------------------------------------------------|
  922.  3   |    mH   |    Transfer period (mH times 4 nanoseconds)                 |
  923. -----|---------|-------------------------------------------------------------|
  924.  4   |    xH   |    REQ/ACK offset                                           |
  925. ==============================================================================
  926.  
  927.   A pair of SYNCHRONOUS DATA TRANSFER REQUEST messages (Table 5-6) are 
  928. exchanged between an initiator and a target whenever an SCSI device that can 
  929. support synchronous data transfer recognizes that it has not communicated with 
  930. the other SCSI device since receiving the last "hard" RESET condition or a BUS 
  931. DEVICE RESET message.  The SCSI devices may also exchange messages to 
  932. establish synchronous data transfer when requested to do so.  The message 
  933. exchange establishes the transfer period and the REQ/ACK offset.  The transfer 
  934. period is the minimum time between leading edges of successive REQ pulses and 
  935. of successive ACK pulses.  
  936.  
  937.  
  938.   The REQ/ACK offset is the maximum number of REQ pulses that may be 
  939. outstanding before its corresponding ACK pulse is received at the target.  A 
  940. REQ/ACK offset value of zero shall indicate asynchronous mode; a value of FFH 
  941. shall indicate unlimited offset.
  942.  
  943.   If the initiator recognizes that negotiation is required, it asserts  ATN 
  944. and, if the target implements message transfers, sends a SYNCHRONOUS DATA 
  945. TRANSFER REQUEST message indicating an REQ/ACK offset and minimum transfer 
  946. period.  The REQ/ACK offset is chosen to prevent initiator buffer overflows, 
  947. while the minimum transfer period is chosen to meet the data handling 
  948. requirements of the initiator.  The target responds in any of the following 
  949. ways:
  950.  
  951. Target Response                         Implied Agreement
  952. -------------------------------------   --------------------------------------
  953. (1) REQ/ACK offset less than or equal   REQ/ACK offset equal to target value.
  954.     to the requested value.
  955.     Minimum transfer period equal to    Minimum transfer period equal to 
  956.     or greater than requested period.   the target value.
  957.  
  958. (2) REQ/ACK offset equal to zero.       Asynchronous transfer.
  959.  
  960. (3) MESSAGE REJECT.                     Asynchronous transfer.
  961.  
  962.   If the target recognizes that negotiation is required, it sends a 
  963. SYNCHRONOUS DATA TRANSFER REQUEST message to the initiator.  The REQ/ACK 
  964. offset is selected to prevent buffer and offset counter overflows, while the 
  965. minimum transfer period is chosen to meet the data handling requirements of 
  966. the target.  The initiator responds in any of the following ways if the target 
  967. chooses an REQ/ACK offset equal to FFH:
  968.  
  969. Initiator Response                      Implied Agreement
  970. -------------------------------------   --------------------------------------
  971. (1) REQ/ACK offset equal to FFH.        REQ/ACK offset unlimited.
  972.     Minimum transfer period equal to    Minimum transfer period equal to
  973.     or greater than requested period.   the initiator value.
  974.  
  975. (2) REQ/ACK offset equal to 00H.        Asynchronous transfer.  The target may 
  976.                                         renegotiate for an REQ/ACK offset less 
  977.                                         than FFH and greater than 00H.
  978.  
  979. (3) MESSAGE REJECT.                     Asynchronous transfer.
  980.  
  981.   The initiator responds in any of the following ways if the target selects an 
  982. REQ/ACK offset less than FFH:
  983.  
  984. Initiator Response                      Implied Agreement
  985. -------------------------------------   --------------------------------------
  986. (1) REQ/ACK offset less than or equal   REQ/ACK offset equals initiator value.
  987.    to the requested value.
  988.    Minimum transfer period equal to     Minimum transfer period equal to the
  989.    or greater than requested value.     initiator value.
  990.  
  991. (2) REQ/ACK offset equal to zero.       Asynchronous transfer.
  992.  
  993. (3) MESSAGE REJECT.                     Asynchronous transfer.
  994.  
  995.  
  996.   The implied agreement shall remain in effect until a BUS DEVICE RESET 
  997. message is received, until a "hard" RESET condition occurs, or until one of 
  998. the two SCSI devices elects to modify the agreement.  Renegotiation at every 
  999. selection is not recommended, since a significant performance impact is 
  1000. likely.  The default mode of data transfer is asynchronous mode.  The default 
  1001. mode is entered at power on, after a BUS DEVICE RESET message, or after a 
  1002. "hard" RESET condition.  The SYNCHRONOUS DATA TRANSFER REQUEST message 
  1003. exchange can only take place following a SELECTION phase that includes the 
  1004. SCSI IDs for both the initiator and the target.  Violation of this rule may 
  1005. make data transfer impossible owing to disagreements among SCSI devices about 
  1006. the data transfer mode.
  1007.  
  1008.   5.5.6 EXTENDED IDENTIFY Message (Optional)
  1009.  
  1010.                                   Table 5-7
  1011.                               EXTENDED IDENTIFY
  1012.  
  1013. ==============================================================================
  1014. Byte |  Value  |    Description                                              |
  1015. ==============================================================================
  1016.  0   |   01H   |    Extended message                                         |
  1017. -----|---------|-------------------------------------------------------------|
  1018.  1   |   02H   |    Extended message length                                  |
  1019. -----|---------|-------------------------------------------------------------|
  1020.  2   |   02H   |    EXTENDED IDENTIFY code                                   |
  1021. -----|---------|-------------------------------------------------------------|
  1022.  3   |   xxH   |    Sub-logical unit number                                  |
  1023. ==============================================================================
  1024.  
  1025.   The EXTENDED IDENTIFY message (Table 5-7) is optional and may be sent by a 
  1026. target or an initiator.  It may be used in conjunction with the normal 
  1027. IDENTIFY message in order to expand the logical unit number addressing in a 
  1028. target.  The sub-logical unit number specifies the encoded eight-bit sub-
  1029. logical unit number used to identify one of 256 sub-logical units within the 
  1030. logical unit.  This allows up to 2048 units to be addressed on a single 
  1031. target.
  1032.  
  1033. 
  1034. .fo Section 6                            #
  1035. 6. SCSI Commands 
  1036.  
  1037. This section defines the SCSI command structure and gives several examples.
  1038.  
  1039.   The command definitions assume a data structure providing the appearance at 
  1040. the interface of a contiguous set of logical blocks of a fixed or explicitly 
  1041. defined data length.  The SCSI device maps the physical characteristics of the 
  1042. attached peripheral devices to one of several logical structures defined by 
  1043. the device type code.
  1044.  
  1045.   A single command may transfer one or more logical blocks of data.  Multiple 
  1046. commands may be linked if they are sent to the same logical unit.  A target 
  1047. may disconnect from the SCSI bus to allow activity by other SCSI devices while 
  1048. a logical unit is being prepared to transfer data.
  1049.  
  1050.   Upon command completion (successful or unsuccessful), the target returns a 
  1051. status byte to the initiator.  Since most error and exception conditions 
  1052. cannot be adequately described with a single status byte, one status code, 
  1053. CHECK CONDITION, indicates that additional information is available.  The 
  1054. initiator may issue a REQUEST SENSE command to retrieve this additional 
  1055. information. 
  1056.  
  1057.   By keeping to a minimum the functions essential to communicate via this 
  1058. protocol, a wide range of peripheral devices of varying capability can operate 
  1059. in the same environment.
  1060.  
  1061.   Because subsets of the full architecture may be implemented, optional 
  1062. functions are noted.
  1063.  
  1064. 6.1 Command Implementation Requirements.  The first byte of any SCSI command 
  1065. shall contain an operation code as defined in this document.  Three bits (bits 
  1066. 7 - 5) of the second byte of each SCSI command specify the logical unit if it 
  1067. is not specified using the IDENTIFY message (see 5.5.2).  The last byte of all 
  1068. SCSI commands shall contain a control byte as defined in 6.2.6.
  1069.  
  1070.   6.1.1 Reserved.  Reserved bits, fields, bytes, and code values are set aside 
  1071. for future standardization.  Their use and interpretation will be specified by 
  1072. future extensions to this standard.  A reserved bit, field, or byte shall be 
  1073. set to zero, or in accordance with a future extension to this standard.  A 
  1074. target that receives a reserved bit, field, or byte that is not zero or 
  1075. receives a reserved code value shall terminate the command with a CHECK 
  1076. CONDITION status and, if extended sense is implemented, the sense key shall be 
  1077. set to ILLEGAL REQUEST.  It shall also be acceptable for a target to interpret 
  1078. the bit, field, byte, or code value in accordance with a future extension to 
  1079. this standard.
  1080.  
  1081.   6.1.2 Operation Code Types
  1082.  
  1083. Operation 
  1084. Code Type  Description
  1085. ---------  -------------------------------------------------------------------
  1086. M          Mandatory - Commands so designated shall be implemented in order to 
  1087.            meet the minimum requirement of this standard.
  1088.  
  1089. E          Extended - Commands so designated shall be implemented in addition 
  1090.            to mandatory commands to meet the extended requirement of this 
  1091.  
  1092.            standard.
  1093.  
  1094. O          Optional - Commands so designated, if implemented, shall be 
  1095.            implemented as defined in this standard.
  1096.  
  1097. V          Vendor unique - Operation codes so designated are available for 
  1098.            vendor defined commands.  See the vendor specifications where 
  1099.            compatibility is desired.
  1100.  
  1101. R          Reserved - Operation codes so designated shall not be used.  They 
  1102.            are reserved for future extensions to this standard.
  1103.  
  1104.   6.1.3 Unit Attention Condition.  A unit attention condition for a logical 
  1105. unit shall begin for each initiator whenever the removable medium may have 
  1106. been changed or the target has been reset (by a BUS DEVICE RESET message or a 
  1107. "hard" RESET condition).  The unit attention condition shall persist for each 
  1108. initiator until that initiator issues a command to the logical unit other than 
  1109. REQUEST SENSE or INQUIRY for which the target shall return CHECK CONDITION 
  1110. status.  If the next command from that initiator to the logical unit 
  1111. (following the CHECK CONDITION status) is REQUEST SENSE, and if the target 
  1112. supports extended sense, then the UNIT ATTENTION sense key shall be returned.  
  1113. (If any command other than REQUEST SENSE is received, the unit attention 
  1114. condition is lost.)  
  1115. .fo Section 6                           50.1
  1116.  
  1117.   If an INQUIRY command is received from an initiator with a pending unit 
  1118. attention condition (before the target reports CHECK CONDITION status), the 
  1119. target shall perform the INQUIRY command and shall not clear the unit 
  1120. attention condition.
  1121.  
  1122.   If a REQUEST SENSE command is received from an initiator with a pending unit 
  1123. attention condition (before the target reports CHECK CONDITION status), then 
  1124. the target may either:
  1125.  
  1126.   (1) report any pending sense data and preserve the unit attention condition
  1127.   (2) discard any pending sense data, report UNIT ATTENTION sense key, and 
  1128. clear the unit attention condition for that initiator.
  1129.  
  1130.   If an initiator issues a command other than INQUIRY or REQUEST SENSE while a 
  1131. unit attention condition exists for that initiator, the target shall not 
  1132. perform the command and shall report CHECK CONDITION status.
  1133.  
  1134. 6.2 Command Descriptor Block.  A request to a peripheral device is performed 
  1135. by sending a command descriptor block to the target.  For several commands, 
  1136. the request is accompanied by a list of parameters sent during the DATA OUT 
  1137. phase.  See the specific commands for detailed information.
  1138.  
  1139.   The command descriptor block always has an operation code as the first byte 
  1140. of the command.  This is followed by a logical unit number, command parameters 
  1141. (if any), and a control byte.
  1142.  
  1143.   For all commands, if there is an invalid parameter in the command descriptor 
  1144. block, then the target shall terminate the command without altering the 
  1145. medium.
  1146.  
  1147.   6.2.1 Operation Code.  The operation code (Table 6-1) of the command 
  1148. descriptor block has a group code field and a command code field.  The three-
  1149.  
  1150. bit group code field provides for eight groups of command codes.  The five-bit 
  1151. command code field provides for thirty-two command codes in each group.  Thus, 
  1152. a total of 256 possible operation codes exist.  Operation codes are defined in 
  1153. Sections 7 through 13.
  1154.  
  1155.   The group code specifies one of the following groups:
  1156.  
  1157.   Group 0 - six-byte commands (see Table 6-2)
  1158.   Group 1 - ten-byte commands (see Table 6-3)
  1159.   Group 2 - reserved
  1160.   Group 3 - reserved
  1161.   Group 4 - reserved
  1162.   Group 5 - twelve-byte commands (see Table 6-4)
  1163.   Group 6 - vendor unique 
  1164.   Group 7 - vendor unique
  1165. .pa
  1166.  
  1167. .fo Section 6                           50.2
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.                      (This page is intentionally blank.)
  1192. .pa
  1193.  
  1194. .pn 51
  1195. .fo Section 6                             #
  1196.                                   Table 6-1
  1197.                                 Operation Code
  1198.  
  1199.  
  1200. ==============================================================================
  1201.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  1202. Byte |        |        |        |        |        |        |        |        |
  1203. ==============================================================================
  1204.  0   |        Group Code        |                Command Code                |
  1205. ==============================================================================
  1206.  
  1207.  
  1208.                                   Table 6-2
  1209.             Typical Command Descriptor Block for Six-byte Commands
  1210.  
  1211. ==============================================================================
  1212.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  1213. Byte |        |        |        |        |        |        |        |        |
  1214. ==============================================================================
  1215.  0   |                           Operation Code                              |
  1216. -----|-----------------------------------------------------------------------|
  1217.  1   |   Logical Unit Number    |Logical Block Address (if required) (MSB)   |
  1218. -----|-----------------------------------------------------------------------|
  1219.  2   |                           Logical Block Address (if required)         |
  1220. -----|-----------------------------------------------------------------------|
  1221.  3   |                           Logical Block Address (if required) (LSB)   |
  1222. -----|-----------------------------------------------------------------------|
  1223.  4   |                           Transfer Length (if required)               |
  1224. -----|-----------------------------------------------------------------------|
  1225.  5   |                           Control Byte                                |
  1226. ==============================================================================
  1227. .pa
  1228.  
  1229.                                   Table 6-3
  1230.             Typical Command Descriptor Block for Ten-byte Commands
  1231.  
  1232. ==============================================================================
  1233.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  1234. Byte |        |        |        |        |        |        |        |        |
  1235. ==============================================================================
  1236.  0   |                           Operation Code                              |
  1237. -----|-----------------------------------------------------------------------|
  1238.  1   |   Logical Unit Number    |              Reserved             | RelAdr |
  1239. -----|-----------------------------------------------------------------------|
  1240.  2   |                           Logical Block Address (if required) (MSB)   |
  1241. -----|-----------------------------------------------------------------------|
  1242.  3   |                           Logical Block Address (if required)         |
  1243. -----|-----------------------------------------------------------------------|
  1244.  4   |                           Logical Block Address (if required)         |
  1245. -----|-----------------------------------------------------------------------|
  1246.  5   |                           Logical Block Address (if required) (LSB)   |
  1247. -----|-----------------------------------------------------------------------|
  1248.  6   |                           Reserved                                    |
  1249. -----|-----------------------------------------------------------------------|
  1250.  7   |                           Transfer Length (if required) (MSB)         |
  1251. -----|-----------------------------------------------------------------------|
  1252.  8   |                           Transfer Length (if required) (LSB)         |
  1253. -----|-----------------------------------------------------------------------|
  1254.  9   |                           Control Byte                                |
  1255. ==============================================================================
  1256. .pa
  1257.  
  1258.                                   Table 6-4
  1259.           Typical Command Descriptor Block for Twelve-byte Commands
  1260.  
  1261. ==============================================================================
  1262.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  1263. Byte |        |        |        |        |        |        |        |        |
  1264. ==============================================================================
  1265.  0   |                           Operation Code                              |
  1266. -----|-----------------------------------------------------------------------|
  1267.  1   |   Logical Unit Number    |              Reserved             | RelAdr |
  1268. -----|-----------------------------------------------------------------------|
  1269.  2   |                           Logical Block Address (if required) (MSB)   |
  1270. -----|-----------------------------------------------------------------------|
  1271.  3   |                           Logical Block Address (if required)         |
  1272. -----|-----------------------------------------------------------------------|
  1273.  4   |                           Logical Block Address (if required)         |
  1274. -----|-----------------------------------------------------------------------|
  1275.  5   |                           Logical Block Address (if required) (LSB)   |
  1276. -----|-----------------------------------------------------------------------|
  1277.  6   |                           Reserved                                    |
  1278. -----|-----------------------------------------------------------------------|
  1279.  7   |                           Reserved                                    |
  1280. -----|-----------------------------------------------------------------------|
  1281.  8   |                           Reserved                                    |
  1282. -----|-----------------------------------------------------------------------|
  1283.  9   |                           Transfer Length (if required) (MSB)         |
  1284. -----|-----------------------------------------------------------------------|
  1285. 10   |                           Transfer Length (if required) (LSB)         |
  1286. -----|-----------------------------------------------------------------------|
  1287. 11   |                           Control Byte                                |
  1288. ==============================================================================
  1289.  
  1290.   6.2.2 Logical Unit Number.  The logical unit number addresses one of up to 
  1291. eight physical or virtual devices attached to a target.  This method of 
  1292. addressing is provided for systems that do not implement the IDENTIFY message.  
  1293. A target that accepts an IDENTIFY message shall use the logical unit number 
  1294. specified within the message.  In this case, the target shall ignore the 
  1295. logical unit number specified within the command descriptor block.  
  1296. (Implementors note:  It is a good practice for initiators that implement the 
  1297. IDENTIFY message to specify the same logical unit number in the command 
  1298. descriptor block.)
  1299.  
  1300.   6.2.3 Logical Block Address.  The logical block address on logical units 
  1301. shall begin with block zero and be contiguous up to the last logical block on 
  1302. that logical unit.
  1303.  
  1304.   Group 0 command descriptor blocks contain 21-bit logical block addresses.  
  1305. Groups 1 and 5 command descriptor blocks contain 32-bit logical block 
  1306. addresses.
  1307.  
  1308.   The logical block concept implies that the initiator and target shall have 
  1309. previously established the number of data bytes per logical block.  This may 
  1310. be established through the use of the READ CAPACITY command or the MODE SENSE 
  1311. command or by prior arrangement.
  1312. .pa
  1313.  
  1314.   6.2.4 Relative Address Bit.  The relative address (RelAdr) bit of the 
  1315. group1 and group 5 commands is set to one to indicate that the logical block 
  1316. address portion of the command descriptor block is a two's complement 
  1317. displacement.  This negative or positive displacement is to be added to the 
  1318. logical block address last accessed on the logical unit to form the logical 
  1319. block address for this command.  This feature is only available when linking 
  1320. commands.  The feature requires that a previous command in the linked group 
  1321. have accessed a block of data on the logical unit.  (For an example of the 
  1322. operation of this function, see Section 6.3.3.)
  1323.  
  1324.   6.2.5 Transfer Length.  The transfer length specifies the amount of data to 
  1325. be transferred, usually the number of blocks.  For several commands the 
  1326. transfer length indicates the requested number of bytes to be sent as defined 
  1327. in the command description.  For these commands the transfer length field may 
  1328. be identified by a different name.  See the following descriptions and the 
  1329. individual command descriptions for further information.
  1330.  
  1331.   Commands that use one byte for transfer length allow up to 256 blocks of 
  1332. data to be transferred by one command.  A transfer length value of 1 to 255 
  1333. indicates the number of blocks that shall transferred.  A value of zero 
  1334. indicates 256 blocks.
  1335.  
  1336.   Commands that use two bytes for transfer length allow up to 65,535 blocks of 
  1337. data to be transferred by one command.  In this case, a transfer length of 
  1338. zero indicates that no data transfer shall take place.  A value of 1 to 65,535 
  1339. indicates the number of blocks that shall be transferred. 
  1340.  
  1341.   For several commands more than two bytes are allocated for transfer length.  
  1342. Refer to the specific command description for further information.
  1343.  
  1344.   The transfer length of the commands that are used to send a list of 
  1345. parameters to a target is called the parameter list length.  The parameter 
  1346. list length specifies the number of bytes sent during the DATA OUT phase.
  1347.  
  1348.   The transfer length of the commands that are used to return sense data (e.g. 
  1349. REQUEST SENSE, INQUIRY, MODE SENSE, etc) to an initiator is called the 
  1350. allocation length.  The allocation length specifies the number of bytes that 
  1351. the initiator has allocated for returned data.  The target shall terminate the 
  1352. DATA IN phase when allocation length bytes have been transferred or when all 
  1353. available sense data have been transferred to the initiator, whichever is 
  1354. less.
  1355.  
  1356.   6.2.6 Control Byte.  The control byte is the last byte of every command 
  1357. descriptor block.  A typical control byte is described in Table 6-5.
  1358. .pa
  1359.  
  1360.                                   Table 6-5
  1361.                                  Control Byte
  1362.  
  1363. ==============================================================================
  1364.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    | 
  1365. Byte |        |        |        |        |        |        |        |        |
  1366. ==============================================================================
  1367. Last | Vendor unique   |            Reserved               |  Flag  |  Link  |
  1368. ==============================================================================
  1369.  
  1370.  Bit    Description
  1371. -----   ----------------------------------------------------------------------
  1372. 7 _ 6   Vendor unique
  1373.  
  1374. 5 _ 2   Reserved
  1375.  
  1376.   1     Flag bit - If the link bit is zero, then the flag bit shall be set to 
  1377.         zero.  If the link bit is one, and if the command terminates 
  1378.         successfully, the target shall send LINKED COMMAND COMPLETE message if 
  1379.         the flag bit is zero and shall send LINKED COMMAND COMPLETE (WITH 
  1380.         FLAG) message if the flag bit is one.  Typically, this bit is used to 
  1381.         cause an interrupt in the initiator between linked commands.
  1382.  
  1383.   0     Link bit - This bit is set to one to indicate that the initiator 
  1384.         desires an automatic link to the next command upon successful 
  1385.         completion of the current command.  Implementation of linked commands 
  1386.         is optional.  If the link bit is one, targets that implement linked 
  1387.         commands, upon successful termination of the command, shall return 
  1388.         INTERMEDIATE status and shall then send one of the two messages 
  1389.         defined by the flag bit (above).
  1390.  
  1391.         Targets that do not implement linked commands shall return a CHECK 
  1392.         CONDITION status and, if extended sense is implemented, shall set the 
  1393.         sense key to ILLEGAL REQUEST if either of the link and flag bits are 
  1394.         set to one.
  1395.  
  1396. 6.3 Command Examples
  1397.  
  1398.   6.3.1 Single Command Example.  A typical operation on the SCSI bus is likely 
  1399. to include a single READ command to a peripheral device.  This operation is 
  1400. described in detail starting with a request from the initiator.  This example 
  1401. assumes that no linked commands and no malfunctions or errors occur.
  1402.  
  1403.   The initiator has active pointers and a set of stored pointers representing 
  1404. active disconnected SCSI devices (an initiator without disconnect capability 
  1405. does not require stored pointers).  The initiator sets up the active pointers 
  1406. for the operation requested, arbitrates for the SCSI bus, and selects the 
  1407. target.  Once this process is completed, the target assumes control of the 
  1408. operation.
  1409.  
  1410.   The target obtains the command from the initiator (in this case, a READ 
  1411. command).  The target interprets the command and executes it.  In this case, 
  1412. the target gets the data from the peripheral device and sends it to the 
  1413. initiator.  At the completion of the READ command, the target sends a status 
  1414. byte to the initiator.  To end the operation, the target sends a COMMAND 
  1415. COMPLETE message to the initiator.
  1416.  
  1417.  
  1418.   6.3.2 Disconnect Example.  In the above single command example, the length 
  1419. of time necessary to obtain the data may require a time-consuming physical 
  1420. seek.  In order to improve system throughput, the target may disconnect from 
  1421. the initiator, freeing the SCSI bus to allow other requests to be sent to 
  1422. other logical units.  To do this, the initiator needs to be reselectable and 
  1423. capable of restoring the pointers upon reconnection.  The target needs to be 
  1424. capable of arbitrating for the SCSI bus and reselecting the initiator.
  1425.  
  1426.   After the target has received the READ command (and has determined that 
  1427. there will be a delay), it disconnects by sending a DISCONNECT message and 
  1428. releasing BSY.
  1429.  
  1430.   When the data are ready to be transferred, the target reconnects to the 
  1431. initiator.  As a result of this reconnection, the initiator restores the 
  1432. pointers to their most recent saved values (which, in this case, are the 
  1433. initial values) and the target continues (as in the single command example) to 
  1434. finish the operation.  The initiator recognizes that the operation is complete 
  1435. when COMMAND COMPLETE message is received.
  1436.  
  1437.   If target wishes to disconnect after transferring part of the data (e.g., 
  1438. while crossing a cylinder boundary), it may do so by sending a SAVE DATA 
  1439. POINTER message and a DISCONNECT message to the initiator and then 
  1440. disconnecting.  When reconnection is completed, the current data pointer value 
  1441. is restored to its value immediately prior to the SAVE DATA POINTER message.
  1442.  
  1443.   On those occasions when an error or exception condition occurs and the 
  1444. target elects to repeat the information transfer, the target may repeat the 
  1445. transfer by either issuing a RESTORE POINTERS message or by disconnecting 
  1446. without issuing a SAVE DATA POINTER message.  When reconnection is completed, 
  1447. the most recent saved pointer values are restored.
  1448.  
  1449.   6.3.3 Linked Command Example.  The link function defines a relationship 
  1450. between commands that when combined with the relative address bit, allows 
  1451. previous operations to modify subsequent operations.  Link makes high-
  1452. performance functions possible by providing a relative addressing capability 
  1453. and allowing multiple command execution without invoking the functional 
  1454. component of the initiator.
  1455.  
  1456.   If the desired data address (in the previously described READ command 
  1457. example) is unknown, but a search key defined as some particular bytes of a 
  1458. field is known, then by linking the READ command to a SEARCH DATA EQUAL 
  1459. command, the data can be quickly and effectively transferred to the initiator. 
  1460.  
  1461.   A LINKED COMMAND COMPLETE message is sent from the target to the initiator 
  1462. to indicate linked command completion.  The initiator then updates the stored 
  1463. pointers so that subsequent requests from the target will reference the next 
  1464. command of the chain.  Command processing of linked and single commands is 
  1465. simular except that relative addressing is permitted in linked commands.  
  1466. Linked commands shall be addressed to a single logical unit.
  1467.  
  1468.   For example, the successful completion of a SEARCH DATA EQUAL command causes 
  1469. the target to fetch the linked READ command from the initiator.  If the 
  1470. relative address bit in the READ command has been set to one, and the address 
  1471. field of the READ command is set to zero, the target transfers the 
  1472. successfully searched block to the initiator. 
  1473.  
  1474. 
  1475.  
  1476.